package com.wut.clock.service;

/**
 * @author ZYH
 * @unit D9Lab
 * @description 点赞点踩接口
 * @date 2022/6/10 10:00
 */
public interface ILikeService {

    /**
     * 点赞
     * @param entityId 对象的id，主要包括文章id和评论id
     * @param entityType 对象的类型，0-文章 1-评论
     * @param targetUserId 被点赞的对象
     */
    void like(Integer entityId,Integer entityType,Integer targetUserId);

    /**
     * 获取实体的点赞状态
     * @param entityId 实体id
     * @param entityType 实体类别
     * @return 点赞状态 false-未点赞 true-点赞
     */
    boolean getEntityLikeStatus(Integer entityId,Integer entityType);

    /**
     * 获取实体的点赞数 //TODO 做成一个工厂模式，获取的数量(文章的收藏数，点赞数，评论数，浏览数；用户的粉丝数关注数和获赞数)
     * @param entityId 实体id
     * @param entityType 实体类别
     * @return 点赞数
     */
    long getEntityLikeCount(Integer entityId,Integer entityType);


    /**
     * 查询用户的获赞数  //TODO 做成一个工厂模式，获取的数量(文章的收藏数，点赞数，评论数，浏览数；用户的粉丝数关注数和获赞数)
     * @param userId 用户id
     * @return 点赞数
     */
    int getUserLikeCount(Integer userId);
}
